ASP.NET Core অ্যাপ্লিকেশনগুলিতে Multiple Language Support বা একাধিক ভাষার সমর্থন যুক্ত করা একটি গুরুত্বপূর্ণ ফিচার, বিশেষ করে আন্তর্জাতিক ব্যবহারকারীদের জন্য। ASP.NET Core ইন্টারন্যাশনালাইজেশন (Internationalization) এবং লোকালাইজেশন (Localization) এর সুবিধা দিয়ে বিভিন্ন ভাষায় অ্যাপ্লিকেশন কনটেন্ট প্রদর্শন করতে সাহায্য করে।
Localization হল এক বা একাধিক ভাষায় অ্যাপ্লিকেশন কনটেন্টের প্রদর্শন, যেখানে Internationalization হল অ্যাপ্লিকেশনকে এমনভাবে তৈরি করা যাতে তা বিভিন্ন ভাষা এবং অঞ্চলের জন্য কাস্টমাইজ করা যায়।
ASP.NET Core এ Localization সাপোর্ট যোগ করতে, কিছু কনফিগারেশন এবং কোড পরিবর্তন করা দরকার।
প্রথমে, Localization এর জন্য Microsoft.Extensions.Localization
এবং Microsoft.AspNetCore.Localization
প্যাকেজগুলো ইনস্টল করতে হবে। আপনি যদি NuGet Package Manager ব্যবহার করেন, তাহলে নিচের কমান্ড দিয়ে প্যাকেজ ইনস্টল করুন:
dotnet add package Microsoft.Extensions.Localization
dotnet add package Microsoft.AspNetCore.Localization
Startup.cs
ফাইলে Localization কনফিগারেশনLocalization সক্রিয় করার জন্য Startup.cs
ফাইলে কিছু কনফিগারেশন করা হয়।
ConfigureServices
মেথডে Localization কনফিগারেশনpublic void ConfigureServices(IServiceCollection services)
{
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddDataAnnotationsLocalization()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);
}
এখানে, AddLocalization
মেথডটি ResourcesPath
দিয়ে Resources ফোল্ডারটি নির্ধারণ করে, যেখানে বিভিন্ন ভাষার ফাইল সংরক্ষিত হবে। AddViewLocalization
ও AddDataAnnotationsLocalization
মেথডগুলো ভিউ এবং ডেটা অ্যানোটেশন লকালাইজেশন সাপোর্ট যোগ করে।
Configure
মেথডে Localization কনফিগারেশনpublic void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
var supportedCultures = new[] { "en-US", "fr-FR", "es-ES" };
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US"),
SupportedCultures = supportedCultures.Select(c => new CultureInfo(c)).ToArray(),
SupportedUICultures = supportedCultures.Select(c => new CultureInfo(c)).ToArray()
});
app.UseMvc();
}
এখানে, supportedCultures এর মাধ্যমে আপনি যে ভাষাগুলো সমর্থন করবেন তা নির্দিষ্ট করেছেন। DefaultRequestCulture
হল ডিফল্ট ভাষা যা অ্যাপ্লিকেশন শুরু হলে ব্যবহার হবে।
প্রতিটি ভাষার জন্য একটি রিসোর্স ফাইল তৈরি করতে হবে। Resources ফোল্ডারের মধ্যে ভাষার নাম দিয়ে একটি .resx
ফাইল তৈরি করুন। উদাহরণস্বরূপ:
Resources/Views/Home/Index.en-US.resx
(English)Resources/Views/Home/Index.fr-FR.resx
(French)Resources/Views/Home/Index.es-ES.resx
(Spanish)এই ফাইলগুলোর মধ্যে আপনি ভাষানুযায়ী কনটেন্ট সংরক্ষণ করবেন।
Index.en-US.resx
:Key | Value |
---|---|
WelcomeText | Welcome to our website! |
Index.fr-FR.resx
:Key | Value |
---|---|
WelcomeText | Bienvenue sur notre site! |
আপনি আপনার কনট্রোলার এবং ভিউতে Localization ব্যবহার করতে পারেন। কনট্রোলারে, আপনি IStringLocalizer
ইনজেক্ট করে নির্দিষ্ট ভাষায় কনটেন্ট রিটার্ন করতে পারবেন।
using Microsoft.Extensions.Localization;
public class HomeController : Controller
{
private readonly IStringLocalizer<HomeController> _localizer;
public HomeController(IStringLocalizer<HomeController> localizer)
{
_localizer = localizer;
}
public IActionResult Index()
{
ViewData["WelcomeMessage"] = _localizer["WelcomeText"];
return View();
}
}
এখানে, _localizer["WelcomeText"]
দ্বারা রিসোর্স ফাইল থেকে ভাষা অনুযায়ী কনটেন্ট লোড করা হচ্ছে।
ভিউতে ভাষার কনটেন্ট ব্যবহার করার জন্য @Localizer
এবং @ViewData
ব্যবহার করা যেতে পারে:
<h2>@ViewData["WelcomeMessage"]</h2>
এখানে, WelcomeText
কনটেন্টটি স্বয়ংক্রিয়ভাবে নির্দিষ্ট ভাষা অনুযায়ী প্রদর্শিত হবে।
আপনি ব্যবহারকারীদের জন্য ভাষা পরিবর্তনের ফিচারও প্রদান করতে পারেন। সাধারণত, ভাষা পরিবর্তন করা হয় Query String বা Route Data এর মাধ্যমে।
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US"),
SupportedCultures = supportedCultures.Select(c => new CultureInfo(c)).ToArray(),
SupportedUICultures = supportedCultures.Select(c => new CultureInfo(c)).ToArray(),
RequestCultureProviders = new[] {
new QueryStringRequestCultureProvider()
}
});
এখানে, আপনি Query String এর মাধ্যমে ভাষা পরিবর্তন করতে পারবেন, যেমন: ?culture=fr-FR
.
ASP.NET Core-এ Multiple Language Support যোগ করার মাধ্যমে আপনি আপনার অ্যাপ্লিকেশনকে আন্তর্জাতিক ব্যবহারকারীদের জন্য উপযোগী করে তুলতে পারবেন। Localization এবং Internationalization এর মাধ্যমে আপনার অ্যাপ্লিকেশন একাধিক ভাষায় কনটেন্ট প্রদর্শন করতে সক্ষম হয়। এটি একটি সিম্পল প্রক্রিয়া, যেখানে রিসোর্স ফাইল তৈরি করা হয় এবং সেই অনুযায়ী কনটেন্ট প্রদর্শন করা হয়। এছাড়া, ক্লায়েন্টকে ভাষা পরিবর্তনের সুবিধা দেওয়ার মাধ্যমে ইউজার এক্সপেরিয়েন্স আরও উন্নত করা যায়।
common.read_more